home *** CD-ROM | disk | FTP | other *** search
/ Workbench Add-On / Workbench Add-On - Volume 1.iso / Dev / Amiga-E / E_v3.2a_extras / PdSrc / Lang / Yax / pi.yax < prev    next >
Lisp/Scheme  |  1992-09-02  |  732b  |  43 lines

  1. (defun pi (nr)
  2.   (set max (* nr 4))
  3.   (array a max)
  4.   (set m nr)
  5.   (for i 0 max (set (a i) 0))
  6.   (set k (- (/ (* m 3321) 1000) 1) )
  7.   (for n k 1
  8.     (set (a 0) (+ (a 0) 2))
  9.     (set p (+ 1 (* 2 n)))
  10.     (set c 0)
  11.     (for i 0 m
  12.       (set c (+ (* 10 c) (* n (a i))))
  13.       (set (a i) (/ c p))
  14.       (set c (- c (* (a i) p)))
  15.     )
  16.     (locate 5 20)
  17.     (write n '    ' '')
  18.   )
  19.   (for i m 1
  20.     (if (greater (a i) 9)
  21.       (do
  22.         (set (a i) (- (a i) 10) )
  23.         (set (a (- i 1)) (+ (a (- i 1)) 1))
  24.       )
  25.     )
  26.   )
  27.   (cls)
  28.   (write)
  29.   (write 'pi=3.' '')
  30.   (for i 1 m
  31.     (write (a i) '')
  32.   )
  33.   (write)
  34. )
  35.  
  36.  
  37. (window 0 11 400 150 'PI calc')
  38. (write '#of decimals: ' '')
  39. (set deci (readint))
  40. (write 'busy ....')
  41. (pi deci)
  42. (write)
  43.